package com.mazaiting.manager.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mazaiting.manager.constant.enums.MenuTypeEnum;
import com.mazaiting.mybatisplus.domain.entity.BaseUserEntity;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * <p>
 * 菜单表
 * </p>
 *
 * @author mazaiting
 * @since 2022-09-19
 */
@Getter
@Setter
@TableName("sys_menu")
public class SysMenu extends BaseUserEntity {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 菜单名称
     */
    @TableField("name")
    private String name;

    /**
     * 图标
     */
    @TableField("icon")
    private String icon;

    /**
     * 菜单类型(1:菜单;2:目录;3:外链)
     */
    @TableField("type")
    private MenuTypeEnum type;

    /**
     * 父菜单ID
     */
    @TableField("parent_id")
    private Long parentId;

    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;

    /**
     * 路由路径
     */
    @TableField("path")
    private String path;

    /**
     * 组件布局
     */
    @TableField("component")
    private String component;

    /**
     * 重定向地址
     */
    @TableField("redirect")
    private String redirect;

    /**
     * 状态(0:禁用;1:开启)
     */
    @TableField("visible")
    private Boolean visible;

    /**
     * 角色列表
     */
    @TableField(exist = false)
    private List<String> roles;

}
